{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Lasso Regression Part 2"
      ],
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Lasso Regression (Least Absolute Shrinkage and Selection Operator) is a method that performs both variable selection and regularization in order to enhance the prediction accuracy and interpretability of the statistical model it produces."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "import pandas as pd\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# yfinance is used to fetch data \n",
        "import yfinance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:38.499Z",
          "iopub.execute_input": "2021-07-17T22:08:38.504Z",
          "iopub.status.idle": "2021-07-17T22:08:38.776Z",
          "shell.execute_reply": "2021-07-17T22:08:38.793Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2014-01-01'\n",
        "end = '2018-08-27'\n",
        "\n",
        "# Read data \n",
        "dataset = yf.download(symbol,start,end)\n",
        "\n",
        "# View Columns\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 completed\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/plain": "            Open  High   Low  Close  Adj Close    Volume\nDate                                                    \n2014-01-02  3.85  3.98  3.84   3.95       3.95  20548400\n2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200\n2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300\n2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100\n2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700",
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Open</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Close</th>\n      <th>Adj Close</th>\n      <th>Volume</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2014-01-02</th>\n      <td>3.85</td>\n      <td>3.98</td>\n      <td>3.84</td>\n      <td>3.95</td>\n      <td>3.95</td>\n      <td>20548400</td>\n    </tr>\n    <tr>\n      <th>2014-01-03</th>\n      <td>3.98</td>\n      <td>4.00</td>\n      <td>3.88</td>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>22887200</td>\n    </tr>\n    <tr>\n      <th>2014-01-06</th>\n      <td>4.01</td>\n      <td>4.18</td>\n      <td>3.99</td>\n      <td>4.13</td>\n      <td>4.13</td>\n      <td>42398300</td>\n    </tr>\n    <tr>\n      <th>2014-01-07</th>\n      <td>4.19</td>\n      <td>4.25</td>\n      <td>4.11</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>42932100</td>\n    </tr>\n    <tr>\n      <th>2014-01-08</th>\n      <td>4.23</td>\n      <td>4.26</td>\n      <td>4.14</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>30678700</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:38.781Z",
          "iopub.execute_input": "2021-07-17T22:08:38.785Z",
          "iopub.status.idle": "2021-07-17T22:08:39.526Z",
          "shell.execute_reply": "2021-07-17T22:08:39.577Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X = dataset[['Open','High', 'Low']]\n",
        "Y = dataset['Adj Close']"
      ],
      "outputs": [],
      "execution_count": 3,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.547Z",
          "iopub.execute_input": "2021-07-17T22:08:39.552Z",
          "iopub.status.idle": "2021-07-17T22:08:39.561Z",
          "shell.execute_reply": "2021-07-17T22:08:39.580Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.linear_model import Lasso\n",
        "from sklearn.model_selection import train_test_split\n",
        "from sklearn.preprocessing import StandardScaler\n",
        "\n",
        "X_train,X_test,y_train,y_test=train_test_split(X,Y, test_size=0.3, random_state=0)"
      ],
      "outputs": [],
      "execution_count": 4,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.567Z",
          "iopub.execute_input": "2021-07-17T22:08:39.571Z",
          "iopub.status.idle": "2021-07-17T22:08:39.884Z",
          "shell.execute_reply": "2021-07-17T22:08:40.065Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "model = Lasso()\n",
        "model.fit(X_train,y_train)\n",
        "train_score=model.score(X_train,y_train)\n",
        "test_score=model.score(X_test,y_test)\n",
        "coeff_used = np.sum(model.coef_!=0)"
      ],
      "outputs": [],
      "execution_count": 5,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.891Z",
          "iopub.execute_input": "2021-07-17T22:08:39.894Z",
          "iopub.status.idle": "2021-07-17T22:08:39.902Z",
          "shell.execute_reply": "2021-07-17T22:08:40.069Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Training score:\", train_score)\n",
        "print(\"Test score: \", test_score)\n",
        "print(\"Number of features used: \", coeff_used)\n",
        "print(\"Accuracy Score: \", model.score(X_test, y_test))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training score: 0.9973093795349899\n",
            "Test score:  0.9969665035737365\n",
            "Number of features used:  1\n",
            "Accuracy Score:  0.9969665035737365\n"
          ]
        }
      ],
      "execution_count": 6,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.909Z",
          "iopub.execute_input": "2021-07-17T22:08:39.913Z",
          "iopub.status.idle": "2021-07-17T22:08:39.924Z",
          "shell.execute_reply": "2021-07-17T22:08:40.072Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "r_squared = model.score(X_test, y_test)\n",
        "print(\"The model can predict {0:.1%} of the variance in the test set.\".format(r_squared))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The model can predict 99.7% of the variance in the test set.\n"
          ]
        }
      ],
      "execution_count": 7,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.931Z",
          "iopub.execute_input": "2021-07-17T22:08:39.935Z",
          "iopub.status.idle": "2021-07-17T22:08:39.944Z",
          "shell.execute_reply": "2021-07-17T22:08:40.075Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "zero_coef = model.coef_ == 0"
      ],
      "outputs": [],
      "execution_count": 8,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.951Z",
          "iopub.execute_input": "2021-07-17T22:08:39.955Z",
          "iopub.status.idle": "2021-07-17T22:08:39.961Z",
          "shell.execute_reply": "2021-07-17T22:08:40.077Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "n_ignored = sum(zero_coef)\n",
        "print(\"The model has ignored {} out of {} features.\".format(n_ignored, len(model.coef_)))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The model has ignored 2 out of 3 features.\n"
          ]
        }
      ],
      "execution_count": 9,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.967Z",
          "iopub.execute_input": "2021-07-17T22:08:39.972Z",
          "iopub.status.idle": "2021-07-17T22:08:39.981Z",
          "shell.execute_reply": "2021-07-17T22:08:40.080Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "model = Lasso(alpha=0.1, random_state=0)\n",
        "\n",
        "# Fits the model and calculates performance stats\n",
        "model.fit(X_train, y_train)\n",
        "r_squared = model.score(X_test, y_test)\n",
        "n_ignored_features = sum(model.coef_ == 0)\n",
        "\n",
        "# Print peformance stats \n",
        "print(\"The model can predict {0:.1%} of the variance in the test set.\".format(r_squared))\n",
        "print(\"{} out of {} features were ignored.\".format(n_ignored_features, len( model.coef_)))"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "The model can predict 99.9% of the variance in the test set.\n",
            "0 out of 3 features were ignored.\n"
          ]
        }
      ],
      "execution_count": 10,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:39.987Z",
          "iopub.execute_input": "2021-07-17T22:08:39.992Z",
          "shell.execute_reply": "2021-07-17T22:08:40.082Z",
          "iopub.status.idle": "2021-07-17T22:08:40.002Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "model.score(X_test, y_test)"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 11,
          "data": {
            "text/plain": "0.9990981079535755"
          },
          "metadata": {}
        }
      ],
      "execution_count": 11,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:40.008Z",
          "iopub.execute_input": "2021-07-17T22:08:40.013Z",
          "iopub.status.idle": "2021-07-17T22:08:40.023Z",
          "shell.execute_reply": "2021-07-17T22:08:40.084Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.metrics import r2_score\n",
        "\n",
        "y_pred_lasso = model.fit(X_train, y_train).predict(X_test)\n",
        "r2_score_lasso = r2_score(y_test, y_pred_lasso)\n",
        "\n",
        "print(\"r^2 on test data : %f\" % r2_score_lasso)"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "r^2 on test data : 0.999098\n"
          ]
        }
      ],
      "execution_count": 12,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:40.029Z",
          "iopub.execute_input": "2021-07-17T22:08:40.032Z",
          "iopub.status.idle": "2021-07-17T22:08:40.042Z",
          "shell.execute_reply": "2021-07-17T22:08:40.087Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "plt.plot(model.coef_, color='gold', linewidth=2,\n",
        "         label='Lasso coefficients')\n",
        "plt.legend(loc='best')\n",
        "plt.title(\"Lasso R^2: %f\" % (r2_score_lasso))\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 432x288 with 1 Axes>",
            "image/png": "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YgRPPvkkAPPnz+e1115j/Pjx3HbbbaxYsYLJkyczfvx4xo4dyxdffLHzvwy/HpU0ceJENSYqVP5VdSWqK+NVa15202reUF2Z6KaXL/I3n+eTTz7ZOrKS8Lw60atXr+9M27hxo7a2tqqq6r333qtz585VVdWjjz5aX3/9dVVVraqq0qamJr3lllv0uuuuU1XV5uZmrays1KKiIh0yZIiuX79em5qa9JBDDtFnnnlmm200NDTo8OHD9Z133lFV1YqKii3vd+aZZ7pdsnKlDhkyROvq6nTBggV67bXXqqpqfX29Tpw4UVevXv2dn+GBBx7QCy+8cMv40KFDtbS0VD/++GMdOXKklpaWqqpqWVmZqqpeddVVevPNN6uq6qGHHqqff/65qqq+9dZbesghh6iq6hlnnKHHH3+8trS06IoVK3TXXXdVVdVly5bpUUcdtWVbc+bM0UceeWTLz1dbW/udfbvN79wDFGgHddVOuZierXE1FJ/uhjN/B2kHueG0fWHwnbBuNqz7KSSNgtRJ/uWMYoWFhZx44okUFxfT2Ni45brp/fbbj7lz53LKKadw7LHHkpeXx6RJkzjrrLNoampi+vTpjB8/npdeeomDDz6YzXePn3LKKbz66qtMnz59yzY+++wzsrOzmTTJ/Q769HFdR73++utcdJHraWSPPfZg6NChfP755/zzn//kww8/3HJ0XFFRwRdffBH0Nd0vvfQSM2bMYODAgQD0799/m/nV1dW8+eabzJgxY8u0hoaGLcPTp08nLi6OUaNGbfnG0tYPfvADrr/+egoLCzn22GMZOXJkUNm2xwq66bla66HoeGitgN7ToP+8bednnAv170L5Aig6FoYVQEKWP1nb2iN6bvO46KKLmDt3LlOnTuXll1/m6quvBtwphqOOOooXXniB/fbbjxdffJEDDzyQV199leeff55Zs2Yxd+5c+vbtG/JMqsodd9zB4YcfHvL3BmhtbSUjI4P333+/3fnJycnbZGnPySefzD777MPzzz/PkUceyYIFCzj00EN3KpedQzc9V8lF0PA/SNwVshdBe9f9Zv0JUveD5kIomgHaGPGY0a6iooLcXNdf34MPPrhl+pdffsmYMWO45JJLmDRpEp9++ilff/01WVlZnHvuuZxzzjm89957TJ48mVdeeYUNGzbQ0tLC4sWLOeigg7bZxu67705xcTHL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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 13,
      "metadata": {
        "collapsed": false,
        "outputHidden": false,
        "inputHidden": false,
        "execution": {
          "iopub.status.busy": "2021-07-17T22:08:40.047Z",
          "iopub.execute_input": "2021-07-17T22:08:40.051Z",
          "iopub.status.idle": "2021-07-17T22:08:40.130Z",
          "shell.execute_reply": "2021-07-17T22:08:40.137Z"
        }
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "version": "3.6.12",
      "mimetype": "text/x-python",
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "pygments_lexer": "ipython3",
      "nbconvert_exporter": "python",
      "file_extension": ".py"
    },
    "kernelspec": {
      "name": "python3",
      "language": "python",
      "display_name": "Python 3"
    },
    "nteract": {
      "version": "0.28.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}